Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_telephone_duplex_ptt.py

Displaying Raw • Download


tests/backend/test_telephone_duplex_ptt.py dev (af76f09d) Text, 2.81 KB

T8b949e# SPDX-License-Identifier: 0BSD

T8b949e"""Half-duplex mode and PTT squelch controls for LXST telephony."""

Tff7b72from T7ee787types Tff7b72import Te6edf3SimpleNamespace
Tff7b72from T7ee787unittestT7ee787.T7ee787mock Tff7b72import Te6edf3MagicMock

Tff7b72from T7ee787LXSTT7ee787.T7ee787PrimitivesT7ee787.T7ee787Telephony Tff7b72import Te6edf3Profiles

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787telephone_manager Tff7b72import Te6edf3TelephoneManager


Tff7b72def Td2a8ff_manager_with_callTb4b4b4(Te6edf3modeTff7b72=Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)Tb4b4b4:
Te6edf3tm Tff7b72= Te6edf3TelephoneManagerTb4b4b4(Te6edf3identityTff7b72=Te6edf3MagicMockTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3packetizer Tff7b72= Te6edf3SimpleNamespaceTb4b4b4(Te6edf3squelchedTff7b72=Te6edf3mode Tff7b72== Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)
Te6edf3active_call Tff7b72= Te6edf3SimpleNamespaceTb4b4b4(Te6edf3call_modeTff7b72=Te6edf3modeTb4b4b4, Te6edf3packetizerTff7b72=Te6edf3packetizerTb4b4b4)
Te6edf3telephone Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3telephoneTff7b72.Td2a8ffactive_call Tff7b72= Te6edf3active_call
Te6edf3telephoneTff7b72.Td2a8ffcall_status Tff7b72= T79c0ff6
Te6edf3telephoneTff7b72.Td2a8ffactive_mode Tff7b72= Te6edf3mode
Te6edf3tmTff7b72.Td2a8fftelephone Tff7b72= Te6edf3telephone
Te6edf3tmTff7b72.Td2a8ffpreferred_mode_id Tff7b72= Te6edf3mode
Tff7b72return Te6edf3tmTb4b4b4, Te6edf3telephoneTb4b4b4, Te6edf3packetizer


Tff7b72def Td2a8fftest_resolve_call_mode_defaults_to_full_duplexTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3tm Tff7b72= Te6edf3TelephoneManagerTb4b4b4(Te6edf3identityTff7b72=Te6edf3MagicMockTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffresolve_call_mode_idTb4b4b4(Tff7b72NoneTb4b4b4) Tff7b72== Te6edf3ProfilesTff7b72.Td2a8ffMODE_FULL_DUPLEX
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffresolve_call_mode_idTb4b4b4(T79c0ff999Tb4b4b4) Tff7b72== Te6edf3ProfilesTff7b72.Td2a8ffMODE_FULL_DUPLEX
Tff7b72assert Tb4b4b4(
Te6edf3tmTff7b72.Td2a8ffresolve_call_mode_idTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4) Tff7b72== Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEX
Tb4b4b4)


Tff7b72def Td2a8fftest_switch_mode_half_duplex_squelches_and_clears_pttTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3tmTb4b4b4, Te6edf3telephoneTb4b4b4, Te6edf3_packetizer Tff7b72= Te6edf3_manager_with_callTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_FULL_DUPLEXTb4b4b4)
Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72= Tff7b72True

Te6edf3resolved Tff7b72= Te6edf3tmTff7b72.Td2a8ffswitch_modeTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)

Tff7b72assert Te6edf3resolved Tff7b72== Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEX
Te6edf3telephoneTff7b72.Td2a8ffswitch_modeTff7b72.Td2a8ffassert_called_once_withTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)
Te6edf3telephoneTff7b72.Td2a8ffsquelch_transmitTff7b72.Td2a8ffassert_called_once_withTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72is Tff7b72False
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffis_half_duplexTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72True


Tff7b72def Td2a8fftest_set_ptt_active_unsquelches_only_in_half_duplexTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3tmTb4b4b4, Te6edf3telephoneTb4b4b4, Te6edf3packetizer Tff7b72= Te6edf3_manager_with_callTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)

Tff7b72assert Te6edf3tmTff7b72.Td2a8ffset_ptt_activeTb4b4b4(Tff7b72TrueTb4b4b4) Tff7b72is Tff7b72True
Te6edf3telephoneTff7b72.Td2a8ffunsquelch_transmitTff7b72.Td2a8ffassert_called_once_withTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72is Tff7b72True

Te6edf3packetizerTff7b72.Td2a8ffsquelched Tff7b72= Tff7b72False
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffis_transmit_squelchedTb4b4b4(Tb4b4b4) Tff7b72is Tff7b72False

Tff7b72assert Te6edf3tmTff7b72.Td2a8ffset_ptt_activeTb4b4b4(Tff7b72FalseTb4b4b4) Tff7b72is Tff7b72True
Te6edf3telephoneTff7b72.Td2a8ffsquelch_transmitTff7b72.Td2a8ffassert_called_once_withTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72is Tff7b72False


Tff7b72def Td2a8fftest_set_ptt_active_rejected_in_full_duplexTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3tmTb4b4b4, Te6edf3telephoneTb4b4b4, Te6edf3_packetizer Tff7b72= Te6edf3_manager_with_callTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_FULL_DUPLEXTb4b4b4)

Tff7b72assert Te6edf3tmTff7b72.Td2a8ffset_ptt_activeTb4b4b4(Tff7b72TrueTb4b4b4) Tff7b72is Tff7b72False
Te6edf3telephoneTff7b72.Td2a8ffunsquelch_transmitTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72is Tff7b72False


Tff7b72def Td2a8fftest_call_end_resets_mute_and_ptt_stateTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3tmTb4b4b4, Te6edf3_telephoneTb4b4b4, Te6edf3_packetizer Tff7b72= Te6edf3_manager_with_callTb4b4b4(Te6edf3ProfilesTff7b72.Td2a8ffMODE_HALF_DUPLEXTb4b4b4)
Te6edf3tmTff7b72.Td2a8fftransmit_muted Tff7b72= Tff7b72True
Te6edf3tmTff7b72.Td2a8ffreceive_muted Tff7b72= Tff7b72True
Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72= Tff7b72True
Te6edf3tmTff7b72.Td2a8ffcall_stats Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6fflinkTa5d6ff"Tb4b4b4: Tffa657objectTb4b4b4(Tb4b4b4)Tb4b4b4}

Te6edf3tmTff7b72.Td2a8ffon_telephone_call_endedTb4b4b4(Te6edf3MagicMockTb4b4b4(Tb4b4b4)Tb4b4b4)

Tff7b72assert Te6edf3tmTff7b72.Td2a8fftransmit_muted Tff7b72is Tff7b72False
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffreceive_muted Tff7b72is Tff7b72False
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffptt_active Tff7b72is Tff7b72False
Tff7b72assert Te6edf3tmTff7b72.Td2a8ffcall_stats Tff7b72== Tb4b4b4{Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────